"use strict";
let num = 10;
let flag = true;
// 声明数组的方法 类型 + 方括号」表示法
let numArr = [1, 2, 3, 4, 5, 6, 7];
let flagArr = [true, false];
flagArr.push(true);
flagArr.push(false);
// flagArr.push('a'== 'a1') ///只能写false 或者true 不能写表达式
// 数组泛型 Array<number>
let arr = [1, 2, 3, 4, 5];
let arr1 = ['1'];
// 元组  类型要一一对应
// 访问已知索引的值 可以获取
let arr2 = ['11', 1, true];
console.log(arr2[0]);
arr2.push(10);
// 访问未知索引的值，获取不到
// console.log(arr2[3]);
// let str = 'hello' 就相当于  let str:string = 'hello'
// let str1 = 10
// str1 = ''
let str2; //第一次声明没有初始化的时候，会被推论成any类型,如何初始化的时候给变量赋值，会被推论成第一次赋值的类型
// let str2  就相当于 let str:any  
str2 = '111';
str2 = 10;
str2 = undefined;
str2 = true;
// 联合类型
// 联合类型就是用| 分割我们的每一个类型
let numStr;
numStr = 1;
numStr = 'hhh';
numStr = true;
numStr = undefined;
// something: string | number  给函数的参数只能类型 string 或者 number
// :number 函数返回值的类型
function getLength(something) {
    return something.toString();
}
getLength(12);
